home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Learning Curve
/
The Learning Curve (Weird Science, 1996).iso
/
electronics
/
analog_emulator
/
aces-docs
/
book
< prev
next >
Wrap
Text File
|
1995-09-07
|
28KB
|
524 lines
The Analog Computer Emulator & Simulator
AMIGA - ACES March 10, 1994
(Preliminary Documentation)
Robert Berkey
-------------------------------------------------------------------------
-Index-
Introduction .........................................Page 2
ACES Modules .........................................Page X
Data Preparation .....................................Page X
Functional Setup......................................Page X
Operation ............................................Page X
Control Panel ........................................Page x
Data Editor ..........................................Page X
Plotter Setup ........................................Page X
Plot Exporting .......................................Page X
ACES Module Definitions ..........................Appendix A
Plotter Data Format ..............................Appendix B
Macro Collection .................................Appendix C
Examples .........................................Appendix D
Example 01 --SpringMass----------------------------Page x
Example 02 --SineWave------------------------------Page x
Example 03 --PHYSBE--------------------------------Page x
Example 04 --CurveFit a,b,c -----------------------Page x
Example 05 --Splat---------------------------------Page x
Example 06 --Plate---------------------------------Page x
Example 07 --Algebra-------------------------------Page x
Example 08 --PID-----------------------------------Page x
Example 09 --Sample--------------------------------Page x
Example 10 --Implicit------------------------------Page x
Conclusions ..........................................Page x
-------------------------------------------------------------------------
-Introduction-
Analog computing had it's heyday back in the 1960's, 70's, and 80's.
The analog method of simulating physical systems and solving differential
equations gave engineers and scientists the power to attack and solve
many scientific and engineering problems by using the analog method.
Analog computing equipment was and is expensive to buy, maintain,
and use. Since analog elements have to be connected with wires plugged
into a patching board, programming becomes a somewhat tedious exercise.
With the presence of faster and more capable digital computers were
being developed, attempts where made to emulate the analog computer
functionality on the digital machines. Many of these emulations were run
on the large "mainframe" machines, and later implemented on some of the
smaller "mini" computers. Emulation languages developed include MIMIC,
MIDAS, CSSL, and CSMP to name a few. Most of these programs were run
"batch" fashion where data and parameters were entered on punched cards
and submitted to the machine room for computation. The output (plots and
print-outs) from the computer was received some time later and the
results evaluated. This method, while not giving as good of a "feel" for
the problem, as with analog methods, did solve problems and reduced or
totally eliminated the need for an analog facility. During this period
the problems, to be solved, also increased in complexity requiring even
larger investments for an analog facility.
With the introduction of the "Personal Computer" and the
availibility of faster and more capable hardware and software, it is now
possible to put analog style computing on your desktop. Analog Computer
Emulator System (ACES) is a program for the Amiga computers to do
analog-style computation and simulation. ACES doesn't have the
capability to do massive simulations and can't replace software packages
designed for specific purposes. ACES can solve those everyday smaller
problems that could be handled with a medium-sized analog computer.
Think of ACES as, sort of, a calculator for differential equations. ACES is designed to run on any current Amiga. The language is easy to
learn, contains a rich assortment of emulated analog and hybrid modules,
and provides most of the look and feel of an analog computer. ACES has
an optional analog Control Panel, Plotter facility, and on-screen Data
Editor. With the optional Control Panel, the user can control modes,
monitor variables, and vary parameters. A simple plotting window, is
included, to show trends in the selected variables. A plot export
facility tailors the data for several popular off-line plotting
programs. Data (configuration, parameters, outputs etc..) can be
prepared "off-line" with any text editor capable of outputing vanilla
ASCII characters. (ED is fine.) Optionally the user may take advantage
of the Screen Editor facility to enter and modify the input data.
ACES, like any analog emulator, computes the independent variable in
discrete "steps". Generally, decreasing the step size increases the
accuracy of the solution. Internally, ACES uses an "open loop", fourth
order, Runga-Kutta scheme of integration and double precision floating
variables throughout. Obtaining slightly different solutions, to a given
problem, is one thing the user must get used to with open-loop
integration. It is common practice to use coarser steps to approach a
solution then "tighten down" the step size when higher accuracy is
desired. There is always a trade-off between accuracy and speed of
calculations. Varying step size gives you this flexibility. Hopefully by
the time you work through the given examples you will get a feel for
varying the step size and gain confidence in the method.
ACES includes a rich assortment of analog and hybrid-type computing
modules. Most of the usual analog linear and non-linear functions are
included. Currently, up to 75 modules can be programmed in one model.
plus the independent variable, denoted block (76). ACES has built-in
Proportional + Integral + Derivitive (PID) modules. The PID modules can
be used stand alone or in "cascade". The PID module is, in reality, a
macro built of ACE modules but uses only one of the available modules
for each controller. The PID controller can be used to evaluate control
action on simulated processes.
ACES expects the dependent variables to be "amplitude-scaled".
Scaling is common practice for analog computers, where the operating
voltage is fixed and usually ranges from +- 10.0 to +- 100.0 volts. In
ACES , scaling helps maintain the solution between reasonable dynamic
limits, and as a by-product, increases the accuracy, usability, and
forces the user to know more about his problem. ACES uses +-1.0 as the
scaled maximum. This is also common analog practice and is known as
"unity" scaling. The real-world value of the computed variable can be
found simply by multiplying the scaled value by the scale factor. Analog
computers must also scale the independent variable (for the analog has
a fixed independent variable (seconds) due to the electrical nature of
the integration mechanism.) We can use any quantity ,for the independent
variable in ACES, as long as all integration scaling is CONSISTENT
throughout.
-Modules-
Computing elements are provided for most of the useful mathematical
operations. Elements that add, subtract, multiply, divide, and negate
are available. Integrator and mathematical transcedentals, (log, sine
cosine, etc.) are supplied. Up to 3 arbitrary function types, each with
twenty segments, can be utilized in any number of blocks. There are the
so-called "hybrid elements", (digital and analog functions combined)
such as sample/hold devices, transport delays, relays, latches and
flags., which have both kinds of input and output. There are several
digital-only elements such as pulse generator, and "AND" gate. Several
special devices are the PID controller and iteration module. Algebraic
loops can be handled by the CSMP style wye and vacuous elements. There
can be a total of 75 blocks programmed plus the independent variable
(block 76) which can be used by any module. The limitations are as
follows: 25 integrators, 3 PID controllers, 3 Unit delays, 3 function
types. All in all, ACES has at it's disposal a very rich assortment of
module type (see the appendix for complete description of the ACES
computing elements).
-Data Preparation-
Having amplitude-scaled the system equations, prepared a suitable
flow diagram, and calculated the initial conditions, parameters, and
arbitrary function tables, a data set can be prepared using an editor of
choice.
First the configuration of the modules must be specified. Each
configuration statement is on a single line. An, up to 16 character,
Identifier, a space, Block number of the module, a space, Block type
code, a space Input block 1, a space, Input block 2, a space, and Input
block 3. Unused inputs are given Block 0 as a block number. Block number
assignments can be arbitrary except for vacuous (V) modules. The
efficiency of the computation is increased by giving these modules the
highest number in the system.(75 down). A pound sign (#) , after the
last configuration statement line, ends the configuration data section.
The second part, of the dataset, consists of the initial conditions,
parameters, and scaling information. There should be a parameter
statement for every module configured. Unused parameters are given a
value of 0.0. Scale factor is the actual multiplication factor used for
the variable in the scaling process (or 1.0) if un-scaled. Bias factor
is generally 0.0... Each parameter statement is on a single line. An, up
to 16, character Identifier, a space, Block number, a space, 1st
parameter, a space, 2nd parameter, a space, 3rd parameter, a space,
Scale factor, and Bias factor. A pound sign (#), on the next line, after
the last parameter statement, ends the parameter data section.
The third part, of the dataset, is where the parameters for the
independent variable are specified. Step size is first followed by a
space, then Maximum value, a space, then Frequency of printing. A pound
sign (#), on the next line, ends the independent variable
specifications. The value of the independent variable always starts at
0.0 and increases to the maximum value. The computation can be
interrupted or terminated beforehand through use of a Quit (Q) element
or placing the analog into "Hold" mode.
The fourth part, of the dataset, is where assignment of the module
Block numbers, to be printed, is specified. The independent variable and
up to seven dependent variables can be printed in the log. On a single
line, seven block numbers are entered separated by single spaces.
A pound sign (#), on the next line, ends the print assignment data.
Unused variables should be assigned to block 0. The independent variable
(Block 76) is always printed.
The fifth part, of the dataset, is the plot specification data. The
first line is required, the others are optional. The first line
specifies the block number for the X axis and up to five Y axis
channels, each entry separated by a single space. Unspecified channels
must use block 0. If no other data is specified, default values will be
used for the plot. A pound sign (#), on the next line, ends the plot
specifications. The optional lines contain the plot Title, X and Y axis
labels, plot X and Y maximums and minimums, and Y axis identification
text, the format and order, of which, can be found in Appendix B. A
pound sign (#), on the next line , ends the plot specifications portion
of the data set.
The last specifications, in the data set, are for the optional
arbitrary function tables. There are three different function
specifications, Type 1, Type 2, and Type 3. Each Type of function can be
assigned to multiple blocks.
The functions use equally spaced ordinate values and arbitrary
values for the abscissa. The data should also be amplitude-scaled. There
are 20 function segments for each function. The ordinate values are
entered on four lines, the range of the abscissa is specified in the
parameter section for each block using this Type. All 20 abscissa values
must be specified, any value, including 0.0, can be specified for unused
values. Values,out of range, of the function ordinate extend the
endpoints of the function abscicca. A pound sign, on the next line, ends
the specifications for up the functions. A pound sign is required, for this section, even if no function tables are used. The function table
format will be explained, in detail, later on.
A pound sign, on the last line ends the dataset file.
-Function Generator Setup-
The arbitrary function generator scheme used in ACES consists of
fixed divisions of the ordinate and arbitrary points on the abscissa.
There are 20 divisions or segments equally spaced. The total range of
the ordinate is set by the parameters P1 and P2 for the block assigned.
P1 is the maximum value and P2 is the minimum. The value of the ordinate
must increase from P2 to P1 (P1 must be more negative than P2). The abscissa can be any arbitrary float value but good scaling practice
dictates keeping values between +1.0 and -1.0 . Three different types of
function can be stored. Each type function can be re-used as many times
as required. Don't forget to set P1 and P2 parameters in all the block
parameter specifications. Overrange of the ordinate (P1 and P2 settings)
is allowable with the function values above P1 or below P2 equal to the
end point of the abscissa (Y) value. The first line of data includes the
type # (1, 2, or 3) and first 5 data points, the second line points 6 -
10, third line points 11-15, and the fourth and last line points 16-21. A pound sign (#) follows each type specification.
-Operation-
After creating a dataset, the dataset may be loaded into ACES and
"RUN". Running the data, in this sense, means checking the syntax, legal
block assignments, number of allowable modules, ranges, and suitability
for operation. There are several datasets in the EXAMPLES drawer, which
can be used to gain familiarity with loading data and running ACES. (It
is suggested to go through the examples, in order,.)
Select the "ARCHIVE" item from the "SYSTEM" menu. Select the desired
dataset from any of the available drives. Select "Load" to access the
desired file. We can now "RUN" the dataset through ACES to check for
legal block numbers, available modules, ranges etc. We do this by
selecting the menuitem "RUN" from the "SYSTEM" menu.
If there are no syntax or assignment errors ACES will put the
emulator in "I/C" mode (applying the initial condition values to all of
the integration modules.) The emulator is now ready to operate on the
variables and provide a solution. When it is desired to start operation
select the "OPERATE" Subitem from the "MODE" Item on the "SYSTEM" Menu.
The independent variable, and up to seven, selected dependent variables
will be printed on the screen, during the operation. The emulator will
be placed in "Hold" at the end of the specified "Operate" period. This
is the simplest way to operate ACES, and if a single "answer" is desired
this may be all you have to do.
ACES, normally, only outputs the log to the screen. The screen only
holds output for a few seconds when full, erases, then continues to show
the log. A "Screen Pause" feature can be selected during setup which
allows the user to view each screen. Select "Continue" to continue
operation. The log may, optionally, also be directed to the Preferences
printer or a file volume for permanent record. The log documents the
initial dataset when the dataset is first run. Subsequent changes are
reflected in the log of the sections involved.
A Static Test may be printed in the log by selecting "STATIC TEST"
Subitem from the "MODE" Item in the "SYSTEM" Menu. The output values, of
all currently used blocks, are printed in scaled and unscaled form. A
static check can be generated at any time from Initial Condition or Hold
modes. A static check of variables can be very helpful in debugging an
analog system of equations.
Normally, all setup for the system is done before the dataset is
"RUN". In "Setup" Mode, you may choose to use the Screen Editor to
modify the dataset. The editor must be closed before the dataset can be
run. All changes ,at this point, are temporary. The dataset must be
"Saved" for the changes to be updated in the dataset file volume. The
Control panel may be enabled while in Setup and used to control the
operation of the emulated analog computer. The Control panel allows the
user to select modes with the mouse, monitor any two blocks continuously,
and change parameters in all blocks in any mode. The parameter changes
are temporary. The Screen Editor can be used to change the current
dataset.
If the dataset is re-run the parameters will revert back to the original values. The Plotter window may be enabled in "Setup" Mode. The
plot density, annotation, and up to 5 Y axis channels selected for
plotting.
There is a mode available with the optional Control Panel that is
not available from the "MODE" Menu. The name of this mode is "REP/OP",
which stands for repeated operation mode. In REP/OP the compute mode of
the analog cycles from initial conditions to operate - to hold - back to
initial condition - etc. Several of the analog and hybrid modules
respond to this mode enabling such things as parameter sweeps and
iteration. The REP/OP mode can be canceled by going to "Hold" mode. The
last cycle can be completed,if desired, by selecting "Operate" mode.
There are several examples included that utilize repetitive operation.
The optional QWIK-PLOT window gives a basic, Intuition driven, line
plot of up to 5 abscissa (Y axis) variables verses any 1 ordinate
(X axis) variable. A sidebar, on the QWIK-PLOT screen shows the current
values of the annotation, scale factors, and other information currently
in the dataset. From the QWIK-PLOT menu, plot density (the number of
points for each variable) can be specified. Lines, tics and grids are
optionally put on the plot. Plot data can be "exported" to a off-line
plotting program.
A plot record can be exported at the end of any operate period
while in the hold mode. The pertinent data in the plot section of the
dataset, the unscaled ordinate variable and all 5 unscaled abscicca
values are included in the plot file. Export files for Multiplot and
ListPlot can currently be generated. These data files are ASCII coded
text and can be edited, after the fact, to include other plot options
which are currently not implemented.
-Control Panel Window-
The ACES optional Control panel emulates features normally found on
an actual analog computer console. The output of any two blocks can be
continuously monitored, parameters may be entered in potentiometer
devices, and modes can be controlled. The outputs of any of two blocks
can be read in any mode. The coefficients for all block parameters can be
adjusted while the analog is stopped or running. (Parameters, so
adjusted, are changed only while the data is loaded. To make the changes
permanent you must resave the dataset back on the volume where stored).
The parameters cam be entered on the slide potentiometer gadgets (Range
-10. to +10. ) or enter the floating number directly into the text type
gadget.
The analog mode pushbutton gadgets directly select the Initial
condition (IC), Hold(HD), Operate(OP), and Repeated operation(REP/OP)
modes on the analog computer. Box indicator gadgets indicate the present
mode selected. A spare indicator is energized when a flag(F) element is
triggered. This can notify the operator of some event occurring during
the solution (sign change, limit, etc.). The Control Panel window can be
closed at any time by clicking on the quit box at the upper left corner
of the window.
-Editor Window-
A window-based editor is optionally available to MODIFY, ADD, or
DELETE lines from the loaded dataset. You may use the editor to enter a
completely new dataset,if you wish. All sections of the dataset
[Configuration, Parameters, Timing, Functions, Print and Plot
parameters] can be entered. A handy FORMAT display indicates the proper
format for each section. One thing to remember... The changes apply only
to the dataset loaded. To save changes permanently you must SAVE these
changes back to the original storage volume. You can do this from the
SYSTEM Menu ARCHIVE. You must close the editor window before re-RUNning
the dataset.
-Plotter Setup-
The QWIK-PLOT Plotter Screen must be enabled while in SETUP mode. Up
to 5 variables may be plotted against any module output. Several
presentation options are available and may be selected by the screen menu. Plot conditions, on the screen, are sent to the Export plot file.
Labeling and annotation information are entered in the dataset. (See
Appendix B for data format.)
-Plot Export Facility-
ACES primary design aim is to provide a system for getting timely
and accurate answers to your problem. Every effort has been made to hold
down on the frills. There are occasions, however, that documented
results, particularly professionally plotted results are required.
ACES includes an export facility for several popular shareware
plotting programs. Listplot (a subset of PLPLOT) and Multiplot are
currently supported. Listplot is available in Fred Fish collection #
391 and a version of Multiplot is available on Fred Fish collection #
572. Either of these programs a can render professional looking plots
to a number of different output devices. Every effort is made to export
, to each program, all plot data it can accept, such as plot scaling,
tic spacing, labels, grids, annotation, etc. Listplot is included with
the distribution. Multiplot is available from a number of sources.
-Examples-
The following example datasets can be found in the Examples folder.
They are supplied for informational purposes only. There is no guarantee
or implied warranty as to their applicability to any given application.
Their main purpose is instructional and as a basis for validating the
modules and the emulator.
-------------------------------------------------------------------------
EXAMPLE NAME: DESCRIPTION: NOTES:
------------- ------------ ------
SpringMass A spring-mass-damper Basic implementation of
oscillatory system. F=MA equation commonly
found in engineering.
SineWave A basic sine-omega-t Purpose is to show effect
and cosine-omega-t of step size upon accuracy linear oscillator. of integration in both
frequency and amplitude.
Results of integration
compared against math trig.
functions.
PHYSBE Volumetric model of Medium sized simulation
the human circulatory uses arbitrary functions
system and heart. and discrete logic. A
classic example....
CurveFit-1 Minimization of error Purpose is to show
between field data and methods using Repetitive
a mathematical model. Operation to manually
adjust parameters.
CurveFit-2 (Same as above) with one Purpose is to show method
parameter calculated. of adding automatic
iteration of one
parameter. Features the
Iterative module (?).
CurveFit-3 (Same as above) with two Purpose is to show method
parameters calculated. of adding additional
automatic iteration of
multiple parameters.
Splat Study of pilot eject- Shows use of hybrid logic
ion from an airplane. to control solution of
differential equations
containing limits.
Plate Unsteady-state heat A practical diffusion
transfer in a steel model of a solid with
variable surface boundary
conditions.
Algebra Algebraic loop Method for solving
calculation. algebraic loops involved
in analog models.
Pid Control of an first- Demonstrates use of the
order process with an use in PID controller
analog controller. (%) module to control a
simulated process.
Sample (Same as above) with Shows use of hybrid /
built-up digital-type analog modules.
sampling controller. Zero-order-hold (Z) and
unit delay (U) modules
are implemented.
Implicit Computing the inverse Shows use of the Vacuous
of log e function (V) and Wye (Y) modules
(limited range). to simulate the
calculations normally
done with the high-gain
analog operational
amplifier.
------------------------------------------------------------------------
-Conclusions-
ACES has been designed as a very basic but capable analog computer
system emulator. Every effort has been made to hold down the frills, in
this program, so that it may be run on any AMIGA computer
system. ACES is very usable to solve those small to medium-sized
problems that have a way of cropping up. ACES has not been designed as a
production tool. You would hardly use ACES to generate any volumeous
amount of data on any particular model. That's the purpose of all the
great packages tailored to a specific application. Think of ACES as more
of a universal calculator for systems of linear and non-linear
differential equations. Through the use of ACES, you will gain a feel of
the problem, be able to interact, intuitively make changes, and possibly
solve that problem. Good Luck!; I hope you enjoy using ACES...
-------------------------------------------------------------------------
[end]